//#include "QuadTreeTest.h"
//
//
//QuadTreeTest::QuadTreeTest(CStateManager *state):IGameState(state)
//{
//
//};
//
//
//QuadTreeTest::~QuadTreeTest()
//{
//	Destroy();
//}
//
//
//void QuadTreeTest::Init()
//{
//	CResourceManager* res = CResourceManager::GetInstance();
//	CAnimation *anim = new CAnimation();
//
//	res->m_Tiled.LoadTextureFromFile("Res/TiledLayer.png" , D3DCOLOR_XRGB(255,0,255) , m_StateManager->m_pGraphic->GetDevice() , m_StateManager->m_pGraphic->GetSpriteHandler() );
//
//	m_pCamera = new CCamera( 0  , 0 , g_ScreenWidth , g_ScreenHeight );
//	ReadRaw("Res/level1.png");
//
//	anim->CreateAnimation( 0 , 0 , 0 , 0 , 1.0f );
//
//	m_pPlayer = new CPlayer( 40 , 40 , 0.0f , 300 , 300 , 40 , 40 );
//	m_pPlayer->LoadSprite( &res->m_Tiled , 1 , 1 );
//	m_pPlayer->GetSprite()->SetAnimation( anim );
//	
//
//}
//
//
//void QuadTreeTest::Update()
//{
//	ProcessKey();
//	ProcessObject();
//	m_pPlayer->Update(g_DeltaTime);
//	m_pCamera->UpdateCamera( m_pTiled , m_pPlayer->GetXposition() , m_pPlayer->GetYposition() );
//
//	
//}
//
//void QuadTreeTest::Render()
//{
//	std::vector<CObject*> listRender;
//	m_pQuadtree->GetObjectA( m_pCamera->GetCameraView() , listRender );
//
//	m_StateManager->m_pGraphic->BeginRender();
//
//	m_StateManager->m_pGraphic->GetSpriteHandler()->Begin(D3DXSPRITE_ALPHABLEND);
//
//	//TODO render code here
//	m_pTiled->DrawMap( m_pCamera->GetCameraView() , m_StateManager->m_pGraphic->GetSpriteHandler() );
//
//	int size = listRender.size();
//	for ( ULONG i = 0 ; i < size ; ++i)
//	{
//		listRender[i]->Render(m_pCamera->GetXpos() , m_pCamera->GetYpos() );
//	}
//
//	m_pPlayer->Render( m_pCamera->GetXpos() , m_pCamera->GetYpos() );
//
//	m_StateManager->m_pGraphic->GetSpriteHandler()->End();
//
//	
//	m_StateManager->m_pGraphic->EndRender();
//
//	m_StateManager->m_pGraphic->GetDevice()->Present(NULL , NULL , NULL , NULL );
//}
//
//
//void QuadTreeTest::Destroy()
//{
//
//}
//
//
//
//void QuadTreeTest::ProcessKey()
//{
//	float moveX = 0.0f;
//	float moveY = 0.0f;
//	int size;
//	std::vector<CObject*> listCollision;
//	if( GetKeyState(VK_UP) & 0xff00 )
//	{
//		moveY = - m_pPlayer->GetYVelocity() * g_DeltaTime;
//	}
//
//	if( GetKeyState( VK_DOWN ) & 0xff00 )
//	{
//		moveY = m_pPlayer->GetYVelocity() * g_DeltaTime;
//	}
//
//	m_pPlayer->Move( 0 , moveY );
//	if(m_pTiled->isCollision( m_pPlayer->GetBoundBox() ) )
//	{
//		m_pPlayer->Move( 0 , -moveY );
//	}
//
//	m_pQuadtree->GetObjectA( m_pPlayer->GetBoundBox() , listCollision );
//	size = listCollision.size();
//	for( int i = 0 ; i < size ; ++i )
//	{
//		if( m_pPlayer->IsCollision( listCollision[i] ) )
//			m_pPlayer->Move(  0 , -moveY );
//	}
//	listCollision.empty();
//
//	if( GetKeyState( VK_RIGHT ) & 0xff00 )
//	{
//		moveX = m_pPlayer->GetXVelocity() * g_DeltaTime;
//	}
//
//	if( GetKeyState( VK_LEFT ) & 0xff00 )
//	{
//		moveX = - m_pPlayer->GetXVelocity() * g_DeltaTime;
//	}
//
//	m_pPlayer->Move( moveX , 0 );
//	if(m_pTiled->isCollision( m_pPlayer->GetBoundBox() ) )
//	{
//		m_pPlayer->Move( - moveX , 0 );
//	}
//
//	m_pQuadtree->GetObjectA( m_pPlayer->GetBoundBox() , listCollision );
//	size = listCollision.size();
//	for( int i = 0 ; i < size ; ++i )
//	{
//		if( m_pPlayer->IsCollision( listCollision[i] ) )
//			m_pPlayer->Move( - moveX , 0 );
//	}
//	listCollision.empty();
//}
//
//
//
//
//void QuadTreeTest::ReadRaw(LPCTSTR fileName)
//{
//	D3DCOLOR** pRawMap;
//	ULONG i,j;
//	m_pMapReader = new CMapReader();
//
//	m_pMapReader->LoadRawMap( fileName , m_StateManager->m_pGraphic->GetDevice() );
//
//	m_pTiled = new CTileLayer( &CResourceManager::GetInstance()->m_Tiled ,  m_pMapReader->GetMapWidth() , m_pMapReader->GetMapHeight() , 40 );
//
//	m_pQuadtree = new CQuadTree( 17 , m_pTiled->GetCellSize() * m_pTiled->GetColumn() , m_pTiled->GetCellSize() * m_pTiled->GetRow() );
//
//	pRawMap = m_pMapReader->GetRawMap();
//
//	for( i = 0 ; i < m_pTiled->GetRow() ; ++i )
//	{
//		for ( j = 0 ; j < m_pTiled->GetColumn() ; ++j )
//		{
//			switch(pRawMap[i][j])
//			{
//			case D3DCOLOR_ARGB(255 , 0 , 0 , 0 ):
//				m_pTiled->SetCell( i , j , 2 );
//				break;
//			case D3DCOLOR_ARGB(255 , 100 , 200 , 100 ):
//				CObject* object;
//				object = new CObject( j * 40 , i * 40 , 0.0f  , 40 , 40 );
//				object->SetImage( &CResourceManager::GetInstance()->m_Tiled );
//				m_listObject.push_back(object);
//				m_pQuadtree->AddObject( object );
//				break;
//			}
//		}
//	}
//
//}
//
//
//
//void QuadTreeTest::ProcessObject()
//{
//	srand(timeGetTime());
//	ULONG i,j;
//	float moveX = 0.0f;
//	float moveY = 0.0f;
//	std::vector<CObject*> listRender;
//	m_pQuadtree->GetObjectA( m_pCamera->GetCameraView() , listRender );
//
//	int size = listRender.size();
//	int size2 = 0;
//	for ( i = 0 ; i < size ; ++i )
//	{
//		std::vector<CObject*> listCollision;
//		moveX = rand()%100 - rand()%200;
//		moveY = rand()%100 - rand()%100;
//		m_pQuadtree->RemoveObject( listRender[i] );
//		listRender[i]->Move( moveX * g_DeltaTime , moveY * g_DeltaTime );
//		m_pQuadtree->GetObjectA( listRender[i]->GetBoundBox() , listCollision );
//		size2 = listCollision.size();
//		for ( j = 0 ; j < size2 ; ++j )
//		{
//			if ( listRender[i]->IsCollision( listCollision[j] ) )
//			{
//				listRender[i]->Move ( - moveX * g_DeltaTime , -moveY * g_DeltaTime );
//			}
//		}
//		if( m_pTiled->isCollision ( listRender[i]->GetBoundBox() ) )
//		{
//			listRender[i]->Move ( - moveX * g_DeltaTime , -moveY * g_DeltaTime );
//		}
//		if( listRender[i]->IsCollision( m_pPlayer ) )
//		{
//			listRender[i]->Move ( - moveX * g_DeltaTime , -moveY * g_DeltaTime );
//		}
//		m_pQuadtree->AddObject( listRender[i] );
//	}
//}